Internet Data Usage Control System

ABSTRACT

A method for seamlessly and automatically granting tailored permission for use and transference of Internet data between databases with comprehensive consent is described. The method employs a graph language such as JSON-LD to integrate and employ cryptographically signed Information Sharing Agreements (ISA) between parties. Data is serialized to be easily transferred between databases when appropriate permission is obtained. Granular data exchange under usage control contacts can be automated among any number of parties on the Internet. As such, the method provides a means by which users may control not only what may be done with their data, but to what entity or entities the data may be transferred. Advertisements may then be served to the user according to his or her preferences as defined within a web or desktop app, which is then applied to all related ad publishers publishing to the domains visited by the user.

CROSS REFERENCE TO RELATED APPLICATIONS

This document is a continuation of U.S. Nonprovisional Utilityapplication Ser. No. 16/772,793, entitled “Internet Data Usage ControlSystem,” naming as first inventor James Fournier, which was filed onJun. 14, 2020, which in turn is a national stage entry of PatentCooperation Treaty Application Ser. No. PCT/US18/52089, entitled“Internet Data Usage Control System,” naming as first inventor JamesFournier, having an international filing date of Sep. 20, 2018(hereinafter “the '089 application”), which in turn claims the benefitof the filing date of U.S. Provisional Patent Application No.62/560,714, entitled “Internet Data Usage Control System,” naming asfirst inventor James Fournier, which was filed on Sep. 20, 2017, which'089 application further claims the benefit of the filing date of U.S.Provisional Patent Application No. 62,589,334, entitled “Internet DataUsage Control System,” naming as first inventor James Fournier, whichwas filed on Nov. 21, 2017, the disclosures of each of which are herebyincorporated entirely herein by reference.

BACKGROUND 1. Technical Field

The present invention relates to Internet data, and more specificallyrelates to permissioned data exchange among parties over the Internet.

2. Background Art

Data sharing and transfers via networks are ubiquitous in our moderncomputerized society. Many individuals, groups, companies,organizations, and the like routinely not only share digital data aboutthemselves and things that they know, but also search for data andinformation about other parties and other things across closed networks,multiple networks, and the Internet. In general, data portability refersto the possibility for a user to have its data moved from one data hostto another. Such a user can be an individual, company, or other party,and the user data can be moved by the user itself, or the user can grantpermission to another party or entity to move or receive the data orongoing currently updated copies of the data, such as by a link. Suchdata hosts can be on a single network, or can be across disparatenetworks and even the Internet in general. Such data can include datathat has been self-created and/or data that has been created about theuser as a result of its activities or other information storage.

Data portability can be important with respect to a user, a vendor,and/or other party wishing to obtain or exchange identifying or otherpertinent information, such as for a potential purchase or othercommercial transaction/exchange. Of course, there can be many drawbacksto the unlimited availability and exchange of identifying or otherpersonal information, and few people are willing to provide their ownpersonal data in a wide open and unrestricted manner. There are almostalways requirements, restrictions, or other protections that go alongwith providing such personal data, as is generally well known.

While the exchange of identifying or other personal data can often bekept under control or restricted when it takes place within a singlecontrolled network or domain, it can be problematic to provide for dataportability across multiple disparate servers, networks, or the Internetin general. For example, where a user might wish to obtain informationabout a particular product, he or she might provide his or her personalinformation or data on a proprietary website or single network of aknown vendor for that type of product, where it might be reasonablyexpected that such information can be kept safe or protected by areputable operator of the single website or network. Constantly andrepeatedly providing personal information or data can be cumbersome andinefficient though, such as where a user might wish to provide and/oraccess data from multiple providers, networks, or sites.

In fact, it has become increasingly common simply to provide personaldata over the Internet in general, sometimes in ways that are not wellsecured or protected. The Internet has become the common networkconnecting many other types of digital networks and devices forcommunications and data interchange. The increased use of the Internethas led to an increase in the number of applications and servicesrunning thereon, the number and value of transactions taking place, andthe number and types of relationships that can be formed and maintainedelectronically. Each of these has in turn increased the importance oftrust in online activities. Although a number of known technologies andservices have been developed to meet this need, there tend to bedrawbacks or limitations to each of that which is currently known.

Presently, there is no automated way to control the use of data after ithas been transmitted from one computing device to another computingdevice, or from one database to another database, using the Internet orother network. There is presently no automated way to verify the chainof custody, or provenance, for data received using the Internet.Additionally, there is presently no protocol available which reconcilesand harmonizes the PSD2 regulation and GDPR regulations.

Thus, there is a need for a new system and method by which an entity'sdata may be controlled, and use of the data may be restricted by theoriginator of the data securely and automatically according topreferences established by the entity. Additionally, there is a need fora methodized system which employs cryptographically signed, automatedagreements between parties, users, or entities for the use andtransference of data with full transparency. Such a system provides fora clear chain-of-custody of one's Internet data, and enables users torestrict certain forms of usage and/or transference/sharing. The systemis preferably configured to define and describe data so as to facilitatethe movement of data from one database to another easily. The system andmethod preferably employs an existing graph language, and existingPKI—public/private key pairs. Additionally, such a system is preferablyarchitected with a separation of concerns—i.e. roles and points on thesystem have been separated, which then interact with each other, ratherthan placing everything within a single server or hub such as a walledgarden.

At least one previous attempt at creating a graph-based user-controlledInternet data exchange system has been unsuccessful. XDI aspired toprovide built-in data access control via a data graph. However, theeffort never achieved a working solution to that objective. XDI was atonce over-determined, inefficient, and cumbersome as a graph language,and ultimately failed to work because it was not database friendly. Datacould not easily be defined so as to facilitate transfer betweendatabases. XDI named but never functionally defined a “link contract” ina meaningful way for developers. In contrast to XDI, the presentinvention currently employs JSON-LD as an underlying graph language andthen goes on to actually define, create and manage link contracts. Thisallows the present inventions to facilitate data usage control by userswith respect to the data that they share, and to govern how, where, andfor what purposes, that obtained data may be used by a recipient viauser-defined and mutually agreed permissions.

Additionally, there is a need for a system and protocol that iscompatible and compliant with both GDPR and PSD2. The spirit of theEuropean Union General Data Protection Regulation (GDPR) is to empowerend-users in their relations with corporations. The JLINC protocol takesthis literally, placing the data subject (the data rights holder) at thecenter of every data event. As Lawrence Lessig has stated, “code is law”and the JLINC protocol of the present invention embodies the spirit ofthe GDPR in the structure of the protocol.

Another European regulation, the Payment Sendees Directive 2 (PSD2)requires banks to make it easier for financial services to accesscustomer's banking services. This might seem to be in contradiction tothe GDPR regulations, but it is believed that by placing the data rightsholder at the center of each data event, the system of the presentinvention makes it possible to satisfy the intent and the text of bothregulations.

SUMMARY

This Summary of the Invention is provided to introduce a selection ofconcepts in a simplified form that are further described below in theDetailed Description. This Summary is not intended to identify keyfeatures or essential features of the claimed subject matter, nor is itintended to be used to limit the scope of the claimed subject matter.

The present invention is a method and system for establishingcryptographically signed agreements about data-use permission and dataownership between computing devices across the Internet. The agreementselection, signing and exchange may also be automated. Additionally, thepresent invention is a method for allowing two, or more, entities toexchange data in a manner that allows all parties to cryptographicallysign agreed terms using the Internet, or other decentralized network fortransport. The present invention uses a novel combination of existingstandard protocols and methods to achieve the new objective of creatinga decentralized data usage permission control mechanism.

The present invention provides a system and method by which users cannot only control which entities may obtain their data when their data isdesired by one or more entities, but also control what the entities arepermitted do with that data after it has been transmitted or collected.The system involves a mutual signing of Information Sharing Agreements(ISAs), which are conventionally cryptographically signed. Thecontractual signing of the ISAs is facilitated via a robust, automatedsystem primarily enacted using a graph language, such as JSON-LD. Theagreements are legally valid, and are configured to strongly encourageentities to respect the agreements, or face reputation damage and/orlegal ramifications.

The system is based on exchanging these ISAs, and the softwarefacilitating the system of the present invention enables users tosecurely and confidently share data only after the permission and rightsto use the data are negotiated and decided.

Most point-to-point data sharing on the Internet is done with some formof access control. Administrators control whether or not users mayachieve access or whether data may be exchanged. Currently, when data isexchanged, such as metadata, personal information, browsing information,and similar user data, possession is 9/10th of the law. Once an entityhas a user's Internet data, he or she may do whatever they wish with itaccording to typical current terms of service. This is unfortunate formany common users of the Internet, who do not know that their data isbeing captured, and have no way of knowing what will be done with it, orwho it will be shared with. Once an entity has a user's data, they cando what they wish with it.

Today, graph languages such as JSON-LD make it far easier to move databetween databases. The current invention adds agreements about how thedata may be used, combined and how such activity may be automated, allin a way that can be cryptographically signed. This has a helpful sideeffect of helping to move data around between disparate data sources, asit is a common language and form in which to store the data. The systemhelps to prove what is done with the data, and at what date and time,thereby establishing data provenance. Additionally, the system allowsone to prove that both parties agreed to this exchange. Part of theagreement preferably includes options such that the user may turn offany and all access to his/her data, and the other party is bound tocomply with the request of the user. The user retains the ability to dothis retroactively at any time and to receive a signed verified promisefrom the other party that they have complied and done so, where acryptographic hash of the agreement, signed by all parties is held byall parties, and the signed hash is also recorded on the superset of allaudit services or ledgers specified by any party.

The system of the present invention instantiates a data protection andexchange system that is secure, cryptographically signed, and automated,which allows the agreements about what can be done with one's data to beexchanged over the Internet so as to govern that data after it isexchanged. This may also be applied to other agreements, including anytype of commercial contract or agreements over the Internet. Presently,data exchange can be automatically governed by so-called‘smart-contracts’ such as on Ethereum, which are in practice black-boxeswhere code is obfuscated and as a result the outcome of the contract mayonly be known when that code is executed. This has resulted insituations where unexpected commercial transactions have occurred andvalue has been stolen due to software bugs, errors, or fraud. Where codecannot be readily understood, it may cause data to be shared without theuser's knowledge, and to parties unknown to the user, or worse. It is anobject of the present invention to move away from such ambiguous andobfuscated black-boxes, and provide to the user direct and transparentongoing control over his or her own contractual agreements and data.

A distributed system (non-centralized), with user control disposedacross multiple distributed systems is needed. Unlike Blockchain, thepresent invention offers a means by which data may be described with agraph language, such as JSON-LD, which effectively defines and maps theuser data so as to allow seamless transfer of the data from one databaseto another.

In order to facilitate permissioned data exchange between entities, thedata has to be described in a specific way in order to be movedsuccessfully from one database to another. As such, the data must beserialized in order to do so. With a graph language, data can be movedbetween databases. However, many entities will not permit such exchangeswithout agreements in place about exactly which data may be exchanged,and what may be done with that data after it is moved. Specific datafrom databases may be shared via a graph language, but this remainsproblematic in the absence of an automated agreement regarding what maybe done with the data once acquired. The present invention provides amechanism whereby that agreement is itself written in the graphlanguage, and is expressed in a way that both computers and people maycomprehend. The agreement can be signed with standard PKI, and once theagreement is transmitted, a link to the agreement is contained within anaudit record of the agreement, so that both parties can show and any 3rdparty can irrefutably confirm that the agreement that they each hold wasalso signed by the other party and is valid.

The present invention, referenced as JLINC, uses JSON-LD to expresshuman and machine readable contracts governing what may be done with thedata, and an audit trail is easily referenced and maintained within thetransfer agreement itself, so that the entities may be held both legallyresponsible and accountable by reputation. Once companies (entities)sign a binding agreement that they can be held accountable for, both viareputation and legally, then they are much more likely to comply.Companies anywhere in the world that hold or process personal data forEU citizens can be penalized for noncompliance with GDPR by fines of upto 4% of global turnover.

Additionally, the system of the present invention is applicable tothree-party interactions, and enables the data rights holder thecapacity to maintain control over who has access to his/her data, aswell as what may be done with the data after acquisition. The partiesinvolved need not be limited to data holders, financial institutions,and companies, but may also include devices, businesses, and IOT devicesmanufactured by corporations.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated herein and form a partof the specification, illustrate the present invention and, togetherwith the description, further serve to explain the principles of theinvention and to enable a person skilled in the pertinent art to makeand use the invention.

The present invention will be better understood with reference to theappended drawing sheets, wherein:

FIG. 1 depicts a diagram of the components required in theimplementation and use of the method of the present invention as itrelates to advertising.

FIG. 2 shows a flow chart detailing the back-end processes enacted viathe method of the present invention in order to facilitate seamlesscontrol over one's own Internet data with respect to advertisements.

FIG. 3 details a flow chart showing the implementation and automated useof the system and method of the present invention.

FIG. 4 exhibits a flow chart depicting the method steps of the presentinvention, showing the progression of Internet data as permission isinquired and acquired with respect to advertisements.

FIG. 5 depicts a flow chart showing the interaction between threeparties and the JLINC Data Service of the present invention.

DESCRIPTION

The present specification discloses one or more embodiments thatincorporate the features of the invention. The disclosed embodiment(s)merely exemplify the invention. The scope of the invention is notlimited to the disclosed embodiment(s). The invention is defined by theclaims appended hereto.

References in the specification to “one embodiment,” “an embodiment,”“an example embodiment,” etc., indicate that the embodiment describedmay include a particular feature, structure, or characteristic, butevery embodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment, Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it is submitted that it is within the knowledge of oneskilled in the art to effect such feature, structure, or characteristicin connection with other embodiments whether or not explicitlydescribed.

The present invention is a system and method by which data may be easilydefined, mapped, and transferred among databases while permitted, andonly when permitted.

Permissions are negotiated via cryptographically signed InformationSharing Agreements (ISAs), which are legally binding. The agreementsensure that data obtained is only used for purposes which is itpermitted to be used for, and that data is only transferred to otherparties when permitted. The system and method of the present inventionemploys JSON-LD, a data graph language by which administrators maydefine data transferal, and then adds a new layer by which owners maydefine and agree permissions associated with the data.

For example, say a user is interested in purchasing a car. So the userdiscloses to a vendor, via an ISA agreement, stating that he or she isinterested in a vehicle today. The data is related to the intent orinterest of the user in a vehicle. The user may later request the datato be returned or destroyed. This is of high value to both the user andthe vendor. They are required to abide by the interest of the user, butit is in their interest as well to protect their reputation. The vendordoes not have much to gain from stealing that data. Instead, by honoringthe agreement, the reputation of the company is maintained anddeveloped. Once the company fully embraces the new system it alsobenefits from better quality data at vastly-reduced data maintenancecost, allowing more sales resources to be focused on serious buyersrather than wasting effort antagonizing currently uninterestedcustomers, who recently bought a car for example.

The system and method of the present invention may also be applied tothe web advertising space, wherein a user may set his/her preferencesacross a network of publishers, and be served ads that conform to theirinterests while remaining essentially anonymous to the advertisers, andwithout being tracked the way that conventional ad tracking works.

The system of the present invention may be used for both credentialedusers of a website, or for those that are not (or not yet) a user of thesite. In such scenarios, the non-logged in user viewing a site maytailor his or her ad experience (and in turn, qualify usage of his orher anonymous user data), but wishes to view a site with the ad option,without having to disclose their actual identity, and without having tolog-in. As such, the present invention enables users to remainanonymous, but to also have ads that are customized to them.

The system of the present invention is architected with a data graphlanguage, such as JSON-LD, an open software protocol gaining prominencein use on the Internet. JSON-LD is a new graph language. The system,referenced as JLINC, is expressed in this graph language, and addscryptographically signed contracts and usage control, which is alsowritten in the graph language. The system of the present invention isarchitected in this fashion in order to split or separate the end pointsof the data exchange—namely, between two adversarial entities. This“Separation of Concerns” concept is important to the essence of thepresent invention, which help expand the scale and scope of the systemof the present invention to include not only the use/exchange of data,but to other online contracts and agreements as well. The audit trail ofthe contract that is completed is held by a fourth party, and a thirdparty could supply a standard contract, or be a verified attributeprovider (such as verification of age/location/etc.) This separationfacilitated by the present invention allows for a protocol base for thison the Internet.

It should be understood that the sharing of user data among entities isespecially relevant with respect to advertisements. Companies wish toadvertise to users who have an interest in their product or service.Corollary companies, or those which provide goods or services similar tothose of other companies, often wish to exchange user data for mutualbenefit. As such, much of the exchange of user data pertains toadvertising. The system of the present invention includes a robust webapplication and desktop application, which interface with websites ofthese entities, to enable users to set broad permissions pertaining totheir interests and user data preferences which are enacted globally toall entities (ad publishers to domains, as well as the companies of thedomains themselves) equipped with the data access control system of thepresent invention.

The following terms are to be defined as follows as they pertain to theprocess and use of the system and method of the present invention:

Publisher—a content provider, which hosts ads on a website at a domainthat it controls.

User—the individual consumer of content and ads via a web browser.

Ad Network—ad content provider contracting with the Publisher to deliverads to the User.

Ad Preferences—a set of specific choices made by the User in response toa set of options presented, these could include what types of ads, inwhat interest area, from whom, etc.

ADprefs—a JLINC enabled domain where a User can set and manage their AdPreferences.

The process of implementation and automated use of the system and methodof the present invention, as shown in FIG. 3 , is preferably enacted asfollows:

-   -   1. User arrives on Publisher webpage with an ADprefs button.        (100)    -   2. When the User clicks the ADprefs button, the user arrives at        the ADprefs page, under the ADprefs domain. (110)    -   3. The User is given an opportunity to select Ad Preferences (or        accept the default), and is then returned to the Publisher page.        (120)    -   4. Each time the User returns to the Publisher page, it calls an        API on the Ad Network, or other ad source, with the Ad        Preferences-mask to serve an ad. (130)    -   5. If the User clicks a tiny Ad Preferences icon on an ad, they        are returned to the ADprefs page, which recognizes them. (140)        This will work whether the User is coming from the original        Publisher where they onboarded, or any other Publisher hosting        ADprefs service. If it's a new Publisher, they can be asked if        they want to use the same Ad Preferences or create a        Publisher-specific set of Ad Preferences. (150)    -   6. After first onboarding, if a User is on a new Publisher page        for the first time, the user is shown an onboarding button, but        when the user gets to the ADprefs page, the system will        recognize them and store the new Publisher's random ID for them        in a list of Publisher's ID's for that User. (160)    -   7. The whole scheme is device or browser specific. If a User        wants to associate several devices they do the following:        -   a. On one device, at the ADprefs page, the User creates a            login name and password. (170)        -   b. On the other device at the ADprefs page, they log in with            the same login name and password. The two User's preferences            are now associated and changing them on either device will            update them on all associated devices. (175)    -   8. Note, neither Ad Network nor ADprefs is collecting any PII,        and so by definition they are not sharing or selling any PII.        The User info is held entirely as pseudonyms and random IDs.        (180)

An example of an end user employing the JLINC system and interface ofthe present invention to control his or her advertising permissions anddata usage is exemplified, as shown in FIG. 4 , is as follows:

-   -   1. A user is logged in (with her user name and password) on        BobCo's website. (200)    -   2. She clicks a “Control Your Data” button and is taken to the        JLINC Web App, where a keypair is created and registered for        her, and an ISA is negotiated by the User Data Server with        BobCo's Enterprise Server. (210)    -   3. In addition, while being onboarded to the JLINC Web App, the        user's public key is saved in her browser's local storage. (220)        It could also be saved in a cookie, however presently the        present invention does not require any cookies and so,        therefore, the system does not require a cookie notice. Some        browsers set in their default settings that when a site wants to        write to local storage for the first time, the browser puts up a        permission box for the user to check ‘OK.’    -   4. Later, the user is logged in on CharlieCo's site, and clicks        her “Control Your Data” button. The JLINC Web App reads the        local storage, sees that the user already has an account, and        offers to add CharlieCo to her list of vendors. (230)    -   5. If the user agrees, the User Data Sendee records that choice,        and adds any additional data from CharlieCo to her profile. Any        subsequent changes she makes to her profile or settings are        shared with both BobCo and CharlieCo. (240)    -   6. To return later to her JLINC Web App, the user still logs in        via (any) one of her consolidated vendors with the “Control Your        Data” button, but when she does, the JLINC Web App shows her        relationship with all the vendors she has agreed to consolidate.        (250)    -   7. If her local storage is deleted, or she moves to a different        device, when she logs in with a “Control Your Data” button, the        back-end User Data Service will recognize her as an existing        user (via the code in the button), and restore the local storage        key. (260)    -   8. Whenever the user is logged into her JLINC Web App, she sees        a notice which includes a link. The notice states that for        greater security and more features, the user can download and        install the JLINC desktop or mobile app. (270)    -   9. If she elects the desktop app, the web app triggers the User        Data Server to generate a one-time-use token, which she can copy        and paste into her new desktop app, so that the User Data Server        can identify her desktop app as her. (280)    -   10. The desktop app then generates and registers a new locally        stored master keypair for the user, so subsequent logins from        the desktop app require no password or trip to the vendor site.        (290)    -   11. If she installs the mobile app, the same process is used,        except the User Data Server sends the token to her phone via        SMS. (300)

Security Considerations

The web app of the present invention is only as secure as the logins forBobCo and CharlieCo. This is exactly the same situation as with OAuth,i.e. if a user logs into all used sites with FACEBOOK, and someonecompromises the user's FACEBOOK account, they have access to all of theuser's data.

Unfortunately, SMS as a second authentication factor is not as useful asit may seem. Essentially, if a malicious actor can hijack the user'sphone account (which can be done), they own the user's SMS and likelythe user's email as well. In such cases, the present inventionencourages the use of YUBIKEYS (or similar) for security. It ispredicted that eventually everyone will have two YUBIKEYS—one easilyaccessible, and one hidden away in the event that the first is lost orstolen.

A large number of variations may be present in the use of the system andmethod of the present invention. The previous description of the systemfocused primarily on volunteered personal data use cases. As previouslynoted, the system also includes use cases pertaining to advertising. Itis envisioned that the system of the present invention also providestechnical solutions to mandated compliance under PSD2 open banking rulesor Know Your Customer rules, as well as GDPR requirements for personaldata control and portability. It is envisioned that the system of thepresent invention may be employed with PSD2 APIs, in a manner which willallow a FinTech company to fulfill GDPR, with compliance handled via thesystem of the present invention. Presently, PSD2 requires banks to openan API, but then when the user gives a FinTech third party company thatAPI access there is presently no way for that FinTech company to fulfillthe GDPR requirements for personal data control. With JLINC, a FinTechprovider can leverage the opportunity to expand into new businessoffered by PSD2, while also providing their customers granular controlover their data required to comply with GDPR.

The system of the present invention may also be used for identityverification. For example, proof of identity, such as age orlocation/zip, is often required by some businesses which sellage-restricted items and services. In such domains, the system may beused to confirm that the user is indeed X years old, or is confirmed asphysically in a certain location, and then the data may be sharedaccording to this confirmed and legally obtained data.

Similarly, the system may be configured such that a third partycounter-signs with a key, such as something like a hard identityqualification, including stating that the user is over 18, or sayingthat this is the child of the person as evidenced by this token, allwithout knowing the identity of the person. As such, the system can beused for child-proofing space for domains, even for anonymous users.

It should be understood that the system and method of the presentinvention need not be restricted to use in advertising, but insteadextends to any and all agreements to be made securely by one or moreparties over the Internet. While JSON-LD is employed as a graphlanguage, it should be understood that other graph languages may be usedin lieu of JSON-LD.

For example, it should be understood that another key advantage of thecurrent invention is that it provides a mechanism for delegated consent,whereby one party may give consent for use of data, which may be sharedby a second party under the authority of the first party, withadditional third, or fourth parties, etc. The conditions may beautomated, and may be set by the first party contingent on conditionswhich must be satisfied by the additional parties, and could also becombined with other conditions in a logical or Boolean manifold. Forexample, continue to share this data with car dealers that haveinventory in a certain model, in a certain color, up until a specifieddate, or until notice is transmitted that the first party has completeda purchase and is no longer in the market. No party may retain the dataor retransmit the data upon receipt of an instruction from the firstparty to delete it.

Such automated logical contractual hierarchy is not limited tobusiness-to-consumer use case scenarios, but can also be employed in anycommercial contract or supply chain, such as for example one where apotential customer places an open order for information, or to actuallyexecute an automated purchase, based on the vendor meeting specifiedterms for the product specification, delivery date, financing terms,etc. The commercial contract could include pure financial instrumentsand trades in commodities, derivatives or other financial instruments orproducts.

It should be understood that an alternative commodity-backed tradecredit could be established using the current invention wheremachine-readable contracts backed by one or more commodities areexchanged as trade credits. These credits serve as aninflation-resistant unit of exchange where liquidity is provided by thecapability to express the units in contracts, which are both human andmachine readable and can be inspected by a judge (unlike other previousblockchain-based contracts).

Similarly, it should be understood that a mutual-credit trade creditsystem could be established using the current invention whereinindividuals and/or entities can extend credit to each other in the formof tradable IOU's. These tradable contracts constitute a method ofcreating liquidity among a network or community. The ability to automatecontractual exchange and to associate identity with attributes which canbe expressed as keys, which are in turn used to countersign the keysused to sign trade credit contracts, allows the present invention toprovide the necessary missing infrastructure for a working communitycredit system.

Other versions include scenarios involving the Internet of Things (IoT),whereby a device creates data about, and/or on behalf of, an individual,or other entity, where the device signs the data before it istransmitted, and the use of that data is governed under an ISA betweenthe individual or entity that uses the device and an entity thatreceives the data.

In another class of embodiments, data may be exchanged between two ormore commercial entities in a business relationship where the contractgoverning the data is a complex legal document that has been negotiatedbetween their respective legal departments to govern the exchange ofparticular data between their respective databases under specific termsand conditions on an automated basis possibly triggered by internal orexternal events, and/or by time cycle events.

In another class of embodiments, the chain of data provenance created bya sequence of commercial parties, each signing an ISA associated withthe movement and processing of goods through a supply chain, may be usedto help govern that supply chain. Here, the data provenance representsand verifies the physical chain of custody, or provenance, associatedwith the sequence of activity in a material supply chain. Thecryptographically signed and verified documentation proving origin ofraw materials or food inputs, and therefore the integrity of that supplychain, may also add value for the end user, or consumer, of theresulting product.

In another preferred class of embodiments, the protocol and system ofthe present invention may be used for three-party interactions, asdetailed below.

The JLINC protocol of the present invention enables a more secure andflexible solution that addresses the requirements of both PSD2 and GDPR.The following is a description of the JLINC protocol as it applies to athree-party interaction:

The three actors involved in the system and implementation of thepresent invention, and their interacting cloud sendees, per an exampleinteraction, are as follows:

-   -   The Bank, referenced as “BankCo.”    -   The bank's agent the BankCo JLINC Solutions Sendee.    -   The Financial Technology company, referenced as “FinCo.”    -   The Financial Technology company's agent the FinCo JLINC        Solutions Service.    -   The end-user, the “data subject” in GDPR terms, or “resource        owner” in OAuth terms, referenced as “Alice.”    -   Her agent is the JLINC Data Sendee, which she accesses via her        JLINC App.

The interaction of the three parties can be seen in FIG. 5 .

Alice can be initially onboarded to the system of the present invention(JLINC) via either BankCo or FinCo. For this discussion example, it isassumed she is being onboarded by BankCo, but the process is theidentical, regardless of how Alice is onboarded to the system.

BankCo initializes each existing or new customer on its JLINC SolutionsService by sending the customer's account number or other ID thatuniquely identifies the customer in the bank's records to theappropriate JLINC Solutions Service API. Then, the process is asfollows:

-   -   1. JLINC Solutions Service contacts Alice's JLINC Data Service,        which instantiates a key pair for this user (Alice) and sends        the public key back to the JLINC Solutions Service as a        pseudonymous identifier along with a proposed Information        Sharing Agreement signed by Alice's private key.    -   2. The JLINC Solutions Service records the public key,        counter-signs the Information Sharing Agreement, and returns it        to Alice's JLINC Data Service. Both services can record this        agreement with a third-party audit service as well. JLINC        Solutions Sendee also at this time creates a one-time random ID        and uses that ID to make a one-time-use URL that BankCo can        present to Alice to bring her onboard.    -   3. The JLINC Solutions Sendee may also return along with the        signed Information Sharing Agreement some data which the bank        wishes to share and/or co-manage with Alice, which she can        change, update or withdraw at any time in accordance with the        Information Sharing Agreement.    -   4. When Alice accesses the URL, she is brought to the JLINC Data        Service login page. When she logs in, the new pseudonym is        associated with her account. If she does not yet have an        account, she can register a new account, and the pseudonym is        then associated with her new account.

Alice can add a FinCo account to her JLINC Data Service by selecting itin her JLINC app. The process works similarly to the above, except inreverse. This process is preferably as follows:

-   -   1. First, the JLINC Data Service generates a new key pair for        Alice, and sends the public key to the FinCo JLINC Solutions        Service with a signed proposed Information Sharing Agreement.    -   2. The FinCo JLINC Solutions Service counter-signs the        Information Sharing Agreement and returns it to the JLINC Data        Service. It messages the FinCo API to create a new customer        record and records the new customer ID.    -   3. FinCo can then request data from Alice's JLINC Data Service.        Alice will have pre-authorized a certain profile or data set        when she initiated the FinCo account request, which she can        change, update or withdraw at any time. The data that has been        authorized by Alice to share may include BankCo data that Alice        has received from BankCo according to the Information Sharing        Agreement.

The list of available JLINC Solutions Services that Alice can choose toadd to her JLINC Data Service is created and maintained by anout-of-band registration process that establishes a unique API key andAPI secret shared between that JLINC Solutions Service and her JLINCData Service.

-   -   All communications between the respective services are conducted        over encrypted sessions (generally TLS), but for further        security two other measures are required.    -   First, all messages include the sender's API key, and are        formatted as JSON Web Tokens protected by an HMAC section using        the shared API secret, thus mitigating a man-in-the-middle        attacker from altering the message in transit between the        services without detection.    -   Additionally, the contents of the message are encrypted with the        intended recipient's public key for that relationship. Thus only        the possessor of Alice's corresponding private key can read the        contents of the message, and any attempt to alter the message        contents will fail.

PSD2 Services

To implement PSD2 services, FinCo needs to access BankCo's PSD2-requiredAPIs on Alice's behalf. The method for enabling this currently underconsideration by relevant standards bodies is an OAuth2 framework. Thepreferred steps of this method are as follows:

-   -   1. First, the present invention employs an extension to OAuth2        to allow Alice and/or her JLINC Data Service to authenticate at        BankCo with a key challenge rather than a username and password.    -   2. Next, Alice indicates to FinCo (either logged in at the FinCo        site, or by pre-arrangement) that she wishes FinCo to perform        some action involving BankCo on her behalf.    -   3. Then, under an existing ISA (a hash of the ISA is included in        the request), FinCo's JLINC Solutions Services calls an API at        Alice's JLINC Data Service to request a capability from BankCo.    -   4. Next, Alice's JLINC Data Service in turn makes an API call to        BankCo's JLINC Solutions Service for the capability, including a        hash of Alice's ISA with BankCo.    -   5. Next, BankCo's JLINC Solutions Service presents Alice's        public key to BankCo's authentication API in lieu of a username.    -   6. Next, BankCo returns an authentication challenge, a random        number or string. Crucial to the security of this step, the        challenge must be of sufficient length and sufficiently random,        and must never be reused. BankCo's JLINC Solutions Service        preferably includes a check to prevent challenge reuse.    -   7. Then, BankCo's JLINC Solutions Service encrypts the challenge        with Alice's public key and sends it to her JLINC Data Service.        Her JLINC Data Service decrypts the challenge, signs it with        Alice's private key, re-encrypts the signed challenge with        BankCo's public key, and sends it back.    -   8. Then, BankCo's JLINC Solutions Service decrypts the signed        challenge with BankCo's private key if BankCo does not have the        ability to do this itself, and in any case presents the signed        challenge to BankCo.    -   9. Next, BankCo verifies the signature with Alice's public key        and then returns an OAuth token. This step is in lieu of the        standard OAuth technique where Alice would have been redirected        to and authenticated at BankCo's site, and then been redirected        to FinCo with the OAuth token.    -   10. Then, BankCo's JLINC Solutions Service encrypts the token        with Alice's public key and transmits it to Alice's JLINC Data        Service. Alice's JLINC Data Service decrypts the token,        re-encrypts it with FinCo's public key and transmits it to        FinCo's JLINC Solutions Service.    -   11. Finally, FinCo's JLINC Solutions Service decrypts the token        and presents it to FinCo to use as per the established OAuth        framework.

At the conclusion of this process, the system of the present inventionhas presented a BankCo generated capability to FinCo, but hassignificantly mitigated the ability of a ‘man-in-the-middle’ attacker toreplay the transaction, or to steal Alice's credentials or her OAuthtoken. By placing Alice at the center of the data event, the system ofthe present invention has given her visibility into, and control over,the whole process.

JLINC Solutions Service Connectors

An enterprise/business/entity may connect its data source(s) to a JLINCSolutions Service either with a direct CRM to JLINC Solutions Servicedatabase connector (for example the PostgreSQL database system's foreigndata wrapper mechanism), or by using the JLINC Solutions Service API.

Onboarding New End-Users

An enterprise may initialize existing or new customers on its own JLINCSolutions Service in two ways. If the enterprise is using a direct CRMto JLINC Solutions Service database connector, then the JLINC SolutionsService database triggers the creation of a random one-time-useidentifier. Otherwise the enterprise may send the customer's accountnumber or other ID that uniquely identifies the customer in theenterprise's records to the appropriate JLINC Solutions Service API.

Then, in either case:

-   -   1. First, the JLINC Solutions Sendee of the present invention        contacts the new end-user's JLINC Data Service, which        instantiates a key pair for this user and sends the public key        back to the JLINC Solutions Service as a pseudonymous identifier        along with a proposed Information Sharing Agreement signed by        the new end-user's private key.    -   2. Then, the JLINC Solutions Sendee records the public key,        counter-signs the Information Sharing Agreement, and returns it        to the new end-user's JLINC Data Sendee. Both services can        record this agreement with a third-party audit service as well.        JLINC Solutions Service also at this time creates a one-time        random id, or uses the one created by the database trigger if        that is the case, and uses that id to make a one-time-use URL        that BankCo can present to the new end-user via email or other        means to bring her onboard.    -   3. Then, the JLINC Solutions Service may also return along with        the signed Information Sharing Agreement some data which the        bank wishes to share and/or co-manage with the new end-user,        which she can change, update or withdraw at any time in        accordance with the Information Sharing Agreement.    -   4. When the new end-user accesses the URL, she is brought to the        JLINC Data Service login page. When she logs in, the new        pseudonym is associated with her account. If she does not yet        have an account she can register one, and the pseudonym is then        associated with her new account.

JLINC Audit Service

As part of the JLINC protocol of the present invention, all parties toany data event may each specify a JLINC Audit Service. The protocolrequires that each party so notified transmit, within a reasonableperiod of time, a copy of the signed data event receipt that was createdas part of the data event to the specified JLINC Audit Sendee.

The JLINC Audit Service matches receipts and issues a notification toall parties involved if, after a period of time, it has not receivedmatching receipts from both or all parties to the data event inquestion. These receipts are designed to offer cryptographicallynon-refutable proof that the parties agreed to the data exchange inquestion.

The JLINC Audit Service of the present invention also provides akey-registration service that registers public keys for all parties thatuse the service. In the event that a corresponding private key iscompromised or withdrawn from service for any reason, the JLINC AuditService records that fact, along with a public key that has supersededthe invalid one if applicable. If a receipt is received by the JLINCAudit Service containing an invalid public key, the service returns anotice to that effect, along with any information about supersedingkeys. The JLINC Audit Service also provides an API to check public keysfor validity and supersession directly.

It should be understood that the protocol and tech of the system andmethod of the present invention may be deployed in any situation wherethere are multiple parties relating to the exchange of data on apermissioned basis.

The foregoing descriptions of specific embodiments of the presentinvention have been presented for purposes of illustration anddescription. They are not intended to be exhaustive or to limit thepresent invention to the precise forms disclosed, and obviously manymodifications and variations are possible in light of the aboveteaching. The exemplary embodiment was chosen and described in order tobest explain the principles of the present invention and its practicalapplication, to thereby enable others skilled in the art to best utilizethe present invention and various embodiments with various modificationsas are suited to the particular use contemplated.

Having illustrated the present invention, it should be understood thatvarious adjustments and versions might be implemented without venturingaway from the essence of the present invention. Further, it should beunderstood that the present invention is not solely limited to theinvention as described in the embodiments above, but further comprisesany and all embodiments within the scope of this application.

What is claimed is:
 1. A method for data usage control, comprising:using one or more computer processors, in response to one or more userinputs received at one or more user interfaces of one or more computingdevices: establishing a cryptographically signed Information SharingAgreement (ISA) between a first party and one or more other parties;automatically granting tailored permission, based on the ISA, related touse of the first party's data and related to transference of the firstparty's data between databases; automatically allowing and governing anautomated data exchange, based on the ISA, between the first party andthe one or more other parties, of the first party's data; andautomatically allowing and governing an automated data exchange, basedon the ISA, between the one or more other parties and one or moreadditional parties, of the first party's data.
 2. The method of claim 1,further comprising preventing the automated data exchange, between theone or more other parties and the one or more additional parties, untilthe one or more computer processors receive an indication of agreementof the one or more additional parties to the ISA.
 3. The method of claim1, further comprising receiving, at the one or more computer processors,an indication of an audit service from one of the parties and, using theaudit service, receiving a first signed data event receipt correspondingto a first data event.
 4. The method of claim 3, further comprising,using the audit service, issuing a notification to one of the partiesinvolved in the first data event from which the audit service has notreceived a matching signed data event receipt.
 5. The method of claim 1,further comprising automatically perpetuating terms of the ISA byrequiring a new party to cryptographically sign the ISA before receivingthe first party's data from one of the one or more other parties.
 6. Themethod of claim 1, further comprising capturing and storing a hashedaudit record of all data events of the first party's data, signed byeach of the other parties who have participated in any of the dataevents, establishing one or more chains of custody of the first party'sdata.
 7. The method of claim 1, further comprising receiving andstoring, by a software agent associated with the first party or one ofthe one or more other parties, a record of each data event in which thatparty has participated.
 8. The method of claim 1, further comprising,based on the ISA, restricting or withdrawing a previously-allowed usageof the first party's data in response to one or more selections from thefirst party.
 9. The method of claim 1, wherein the first party's data isautomatically generated by an Internet of Things (IoT) device.
 10. Themethod of claim 1, wherein one of the one or more other partiescomprises a device.
 11. The method of claim 1, further comprisingverifying one of an age of the first party, an identification of thefirst party, a location of the first party, and a verifiable attributeof the first party, and transferring the first party's data to the oneor more other parties only after the verification has occurred.
 12. Themethod of claim 11, further comprising effecting the verification basedon receiving a countersigning with a key, from a countersigner who isnot the first party, without receiving an identity attribute of thefirst party so that the first party remains anonymous.
 13. A system fordata usage control, comprising: one or more non-transitory,computer-readable media having instructions that, when executed by oneor more processors, cause one or more computing devices to: establish acryptographically signed Information Sharing Agreement (ISA) between afirst party and one or more other parties; automatically grant tailoredpermission, based on the ISA, related to use of the first party's dataand related to transference of the first party's data between databases;automatically allow and govern an automated data exchange, based on theISA, between the first party and the one or more other parties, of thefirst party's data; and automatically allow and govern an automated dataexchange, based on the ISA, between the one or more other parties andone or more additional parties, of the first party's data.
 14. Thesystem of claim 13, wherein the instructions further cause the one ormore computing devices to, based on the ISA, facilitate automatic usageof the first party's data by the one or more other parties or automatictransfer of the first party's data to the one or more other parties, inresponse to one or more trigger events.
 15. The system of claim 14,wherein the one or more trigger events comprises one of: arrival of adate; arrival of a time; alignment of financing terms between the firstparty and the one or more other parties; alignment of price between thefirst party and the one or more other parties; and alignment of aproduct or service requested by the first party and a product or serviceable to be provided by the one or more other parties.
 16. The system ofclaim 14, wherein the instructions further cause the one or morecomputing devices to, based on the ISA, facilitate an automaticfinancial transaction between the first party and one of the one or moreother parties in response to one or more of the trigger events.
 17. Amethod for online contractual generation and validation, comprising:using one or more computer processors, in response to one or more userinputs received at one or more user interfaces displayed on one or morecomputing devices: generating a hash of a draft contract; addingcryptographic signatures to the hash from a first party and one or moreother parties, thereby establishing a cryptographically signed hashwhich validates a finalized contract, wherein the cryptographicallysigned hash comprises the hash and the cryptographic signatures;automatically providing the cryptographically signed hash to the firstparty and the one or more other parties; and receiving an indication ofan audit service from the first party and each of the one or more otherparties, and automatically providing the cryptographically signed hashto the audit services of the first party and the one or more otherparties.
 18. The method of claim 17, further comprising, using the oneor more computer processors, governing an exchange of data between thefirst party and the one or more other parties under one or more terms ofthe finalized contract.
 19. The method of claim 17, further comprising,using the one or more computer processors, generating the draft contractin response to the one or more user inputs.
 20. The method of claim 17,wherein the finalized contract does not govern an exchange of databetween the first party and the one or more other parties.